With the proliferation of different types of software, users are increasingly confronted with the need to learn or to navigate unfamiliar software applications. In addition, software has grown more powerful, empowering users to create an ever-greater variety of documents, files and products using software. As a result, software has grown in complexity making it more difficult to master all of the features of software application by any one user. The need for automated user guidance in using software has thus increased.
Printed material to assist users in using software applications, such as how-to books, user manuals and printed works designed to train the user for one or more related set of tasks using a particular software application are well-known. However, these printed materials may pose several problems. First, they may be difficult to find and obtain, and may require additional space for storage. Also, they may entail additional cost. Second, they may never be comprehensive, or completely up-to-date. Third, they require that the user navigate the index/table of contents, and to name the feature sought as it is listed in the index/table of contents. The user may have a very good idea of what he or she is trying to achieve using the software, but not know the name given to the features by the writers of the printed material. Further, the user may have to find several features in the printed material in order to accomplish one task or to generate one object involving more than one feature.
User help features also exist to guide the user. However, as with printed material, these help features typically rely on an index of tasks that the user must use to find the desired information. The index of tasks may not be comprehensive and the user may not know the names all of the features sought. Suppose for example the user wishes to create an interesting graphic that she/he has seen implemented in this software application, but does not know the names given by the writers of the help menu of each of the features that comprise the interesting graphic. The user may not even know how many features were used or could be used in generating the graphic. Such a user would have to guess at the various possible names of each of the features that make up the graphic, and look up these features individually in the user help index or help menu. The same would apply to on-line indexes and help menus.
Dynamic tutorials, including on-line tutorials have been created to assist users. However, some rely on previously stored sequences of user inputs. Many objects are made up of a combination of different features; thus several different such sequences would be necessary to guide the user in generating an object with all of the features, even if recorded guidance were available for all of the features. Further, such an application would be impractical for providing comprehensive guidance with respect to more recently released software applications that have many more features and subtleties.